The term “application platform” denotes a (generic or domain-specific) software platform, i.e. an inter-application software solution that is interposed between the computer hardware with the operating system running thereon on the one hand and the applications, i.e. the actual application programs, on the other hand. A widely established example of such an application platform is J2EE (Java Platform, Enterprise Edition).
Such an application platform typically provides basic functions that are required by a multiplicity of applications, e.g. the reading, writing, deleting and archiving of data. Often an application platform also provides a user interface, i.e. functions such as graphical control elements, etc., via which applications can interact with a user for the purpose of inputting and outputting data. An application platform that is specialized for software applications in the medical field often also provides medically relevant basic functions in addition, e.g. algorithms for inspecting, analyzing and processing medical images. The function portfolio that is made available by an—in particular specialized—application platform enables the development time for software applications to be shortened significantly, in particular in the medical environment.
To allow easy access to the functions of an application platform the latter generally provides what is termed an application programming interface (API) or a plurality of such programming interfaces (APIs), the functions of which can be integrated into the applications that are to be created. Furthermore an application platform sometimes provides what is termed an (application) container in which an application or, in the case of multi-layered applications, a layer of an application runs in encapsulated form. In this case the container controls the execution sequence of the application, in particular the program start and the termination of the application. Typically, at least part of the API(s) is implemented as a component part of the container. Often, however, the APIs also include additional functions which are implemented independently of the container and which the applications can also access accordingly independently of the container.
The term “function” signifies both here and in the following description in general a functional component of a software program. Such a function can also be realized as a “method” within the context of object-oriented programming or in another form.
By providing a container a correspondingly embodied application platform particularly effectively supports the development of multi-layered, distributed applications, in other words applications that comprise a plurality of mutually independently running parts (layers) which interact with one another via the application platform. In this case medical engineering applications frequently include in particular a so-called frontend layer, the primary purpose of which is interaction with the user, and a so-called backend layer, in which most of the actual calculations are performed and which includes no direct user interaction. In a computer network, as commonly used these days in medical institutions, the backend layer is in this case implemented mostly in a central server, while the frontend layer is implemented on a client, i.e. a workstation. The application platform is in this case implemented both on the server side and on the client side and also supports the communication between these hardware devices. In this arrangement the frontend layer and the backend layer are encapsulated by the application platform usually in a separate container in each case.
In a typical data processing system of a contemporary medical institution a multiplicity of different medical engineering applications are often implemented on a shared, cross-network application platform. In particular, medical engineering data processing systems frequently possess a “granular” structure, with different subfunctions of the data processing system being implemented as independently executable applications. The reason for this is that the granular structure simplifies the further development and maintenance of a complex data processing system on the one hand. On the other hand a granular structure also promotes the stability of such a system, i.e. the insensitivity to errors or faults during operation of the system. By subdividing the system into many independent applications it is namely ensured to the greatest possible extent that an error in a subfunction does not cause the entire data processing system to “crash”.
An application platform is typically configured to allow a plurality of these applications to run in parallel, i.e. concurrently. In this case each of these parallel-running applications or—in the case of multi-layered applications—each layer of the parallel-running applications forms an autonomous, separate operating system process. On the frontend side, i.e. the side facing a user, each of these parallel-running applications is represented separately and independently by standard operating systems. In modern operating systems with graphical user interface a separate frame (window) is assigned e.g. to each parallel-running application, the frames being able to be moved, brought into the foreground or hidden, or closed independently of one another.
Owing to the granularity of medical data processing systems it is often necessary in medical workflows, in particular in the editing and analysis of medical image data using image processing equipment, for a user to run a multiplicity of applications simultaneously or sequentially. In the course of such a medical workflow a multiplicity of applications are therefore often started in parallel. The presentation-related independence of the individual applications sometimes leads in this case to a certain disorder which can detract from the effectiveness of the workflow. In particular when many applications are running it is sometimes a tedious task for the user to find the application required at a given time, since in order to do this he/she is obliged to “click” through the open windows. When a large number of applications are running there is furthermore an increased risk that an application that is still required will be accidentally closed prematurely.